package com.my.dao;

import java.util.List;

import com.google.code.morphia.query.Query;
import com.my.page.Page;

@SuppressWarnings("rawtypes")
public interface IBaseDao {
	/**
	 * 添加对象
	 * @param entity	实体对象
	 */
	public void saveEntity(Object entity);
	
	/**
	 * 查找指定类的所有对象
	 * @param clazz		类模板
	 * @return
	 */
	public List findAll(Class clazz);
	
	/**
	 * 根据value进行查询
	 * @param clazz		类模板
	 * @param title		查询的字段名
	 * @param value		查询的值
	 * @return
	 */
	public List findByValue(Class clazz,String title,Object value);
	
	/**
	 * 根据value进行模糊查询
	 * @param clazz		类模板
	 * @param title		查询的字段名		如:name="haha"  (title = name; value = haha)
	 * @param value		查询的值
	 * @return
	 */
	public List findByValueFuzzyQuery(Class clazz,String title,Object value);
	
	/**
	 * 根据ID进行查询
	 * @param clazz		类模板
	 * @param idValue	id值
	 * @return
	 */
	public List findByID(Class clazz,Object idValue);
	
	/**
	 * 修改对象
	 * @param entity	实体对象
	 */
	public void updateEntity(Object entity);
	
	/**
	 * 删除全部
	 * @param clazz		类模板
	 */
	public void deleteAll(Class clazz);
	
	/**
	 * 根据value进行删除
	 * @param clazz		类模板
	 * @param title		字段名
	 * @param value		值
	 */
	public void deleteByValue(Class clazz,String title,Object value);
	
	/**
	 * 分页查询
	 * @param clazz		类模板
	 * @param page		Page对象
	 * @return
	 */
	public Query pagingQuery(Class clazz,Page page);
}
